package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.Role;
import com.itheima.pojo.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import java.util.List;
import java.util.Map;

public interface UserDao {

	/**
	 * 基于名字，获取用户信息
	 * @param username
	 * @return
	 */
	SysUser findByUsername(String username);

	Integer getIdByName(String username);

	Integer getRoleIdByCondition(Integer id);

	/**
	 * 添加用户数据
	 * @param sysUser
	 */
	void add(SysUser sysUser);

	/**
	 * 添加用户数据的角色
	 */
	void set(Integer sysUserId,Integer roleId);

	/**
	 * 基于条件分页获取用户数据列表
	 * @param queryString
	 * @return
	 */
	Page<SysUser> findByCondition(@Param("queryString") String queryString);

	/**
	 * 基于ID，获取数据
	 * @param id ID
	 * @return 对象
	 */
	SysUser findById(Integer id);

	/**
	 * 根据用户id查询相关的角色id
	 * @param id
	 * @return
	 */
	List<Integer> findroleIdsById(Integer id);

	//更新权限数据
	public void edit(SysUser sysUser);

	void delRelation(Integer id);

	long findSetmealCountById(Integer id);

	List<Role> findAll();

	/**
	 * 根据角色id查询权限
	 * @param roleId
	 * @return
	 */
	List<SysUser> findSysUserListByroleId(Integer roleId);

	void delById(Integer id);
}